In a typical network-based data delivery system, data is delivered from one or more servers to a network client in response to a request from a user associated with the network client. The network may be a wide area network utilizing Asynchronous Transfer Mode (ATM) or Transmission Control Protocol/Internet Protocol (TCP/IP) techniques, a local area network such as Ethernet, a cable network, telephone network, direct broadcast satellite (DBS) network or any other mechanism through which data can be delivered from the server to the client. The data may be in the form of continuous media data, such as video and audio data configured in accordance with MPEG-2 or other standards, as well as numerous other types of information. An increasingly important application of network-based data delivery is video-on-demand systems in which users can request delivery of movies or other video programming at any time.
A significant problem in existing systems for delivering data over networks is that the server and its operating software are typically designed for optimum performance with only one type of network or at most only a few different types of networks. For example, a conventional server optimized for operation with an ATM network may not be suitable for use with an Ethernet network. The particular server selected for use in a given application is likely to be dependent on factors such as the transmission protocol and the transmission medium, and the selected server will generally not be readily adaptable for use in a wide variety of applications. As a result, different servers need to be used to deliver data over different types of networks, which increases the cost and complexity of network-based data delivery systems.
It is therefore apparent that a need exists for network data delivery techniques which are protocol independent and transport medium independent, such that the same techniques can be used for delivering data over a wide variety of different types of networks.